On-Screen-Display messages play an important role in consumer electronics products by providing users with interactive information such as menus to guide them through the usage and configuration of the product. Other important features of OSD include the ability to provide Closed Captioning and the display of channel logos.
However, the changing standard of digital video technology presents an ever increasing problem of generating and displaying OSD messages. For example, there are specific High Definition Television (HDTV) requirements that an HDTV must display up to 216 characters in four (4) "windows" versus the current National Television Systems Committee (NTSC) requirements of a maximum of 128 characters in one "window". These new requirements place severe strains on the decoding/displaying system used to decode and display television signals (e.g., HDTV, NTSC, MPEG, and the like), which must decode the incoming encoded data streams and present the decoded data to a display system with minimal delays. Since OSD messages must be displayed (overlaid) with the video data, the microprocessor of the decoding/displaying system must assign a portion of the memory bandwidth to perform OSD functions, thereby increasing the memory bandwidth requirements of a decoding/displaying system and the overall computational overhead.
Thus, an OSD unit of a decoding/displaying system may incorporate a limited size palette to minimize hardware requirements and memory access. Namely, the OSD unit employs a palette using a plurality of registers (entries), where each entry contains a representation of chrominance and luminance levels for an OSD pixel. By encoding the addresses (indices) to the palette as OSD data, a decoding/displaying system is able to minimize memory access and hardware requirements.
However, such systems are limited in the number of colors that are available for the display of an OSD message. Since the palette has a fixed size, it is not well suited to changing standards that may require support for an increased number of colors at a later time. For example, to increase the number of colors from 16 to 256 (standard VGA), would require that 240 additional registers be added to a palette that currently supports only 16 entries.
Increasing the number of registers to the palette is certainly possible, but it is not cost effective and may introduce timing problems (especially for high palette access rate) and other integrated circuit (IC) design problems (e.g., increasing the area on an IC). Furthermore, updating an existing decoding/displaying system with a fixed size palette is difficult and expensive.
Thus, a need exists for a method and apparatus for increasing the number of available colors for OSD messages without increasing the hardware requirements, e.g., the size of an OSD palette, of a decoding/displaying system.